home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl - The Best of BBS
/
Night Owl The Best of BBS (NOP-BBS) (Night Owl Publisher) (1994).iso
/
022a
/
jm940310.lha
/
jamtool.doc
< prev
next >
Wrap
Text File
|
1994-02-14
|
17KB
|
486 lines
-==* JamTool 0.27 *==-
By James McOrmond
February 14, 1994
Note: Contact addresses, and the Changelog is at the end of this file.
-----------------------------------------------------------------------
1) Installing JamTool
There are two versions of Jamtool included in this archive
(bin/Jamtool_T and bin/Jamtool_I). The T version uses Traplist.library
for nodelist lookups, and the I version uses Igen.Library for its
nodelist lookups. If you are planning on installing a nodelist on your
system, you should select which of these two formats you wish to use,
and pickup the utilities for that nodelist format.
The following files are available from my system:
IGEN1a34.lzh - IGEN Nodelist utilities.
Traplist.lha - Traplist Nodelist Utilities. (traplist.library 5.2)
It is recommended to rename the version of JamTool that you have
selected to use, to JamTool and make it resident in your startup-
sequence. If you do not wish to spare the ram to make JamTool resident,
make sure you put it somewhere in your search path.
An alias such as:
"alias lookup jamtool -ldcn "
is quite usefull. (Old TrapDoor users may want to do a similar alias
for the GetNode command).
This alias will add systems to your cache list (if you remove the c it
won't touch your cache). You can use this with JTPhone to add systems
to your phonebook from the nodelist.
-----------------------------------------------------------------------
2) JTPhone
JTPhone is a new program i've added to the package. It is used to edit
the phone book file that Jamtool uses for its lookups. The menu system
is very self-explanitory so you should have no problems figuring out
what you are doing. Basically it allows you to edit the list of
systems in the s:JamTool.Phone list. Because it creates your phonebook
you do not have to edit it manuall, and you don't really need to know
the format of the files either. JTPhone also has an option to import
your cache list, so if you've done some outbound dialing to new systems
and JamTool did a lookup for it, and you now want to add them to your
phone book, you can easily do this. It is recommended that you strip
down the Flags list. Usually, you'll just want to list the relevent
modem flags in there (V32b, Zyx, HST, etc.. whatever you support).
-----------------------------------------------------------------------
3) Using JamTool with JamMail
JamMail is my own WPL.library mailer. If you are running JamMail on
your system (or are now installing it), you do not need to read
section 4 since JamMail looks after this stuff itself.
-----------------------------------------------------------------------
4) Using JamTool in your own Applications (or from the CLI/Shell)
Usage: jamtool -command option {option} {option}.....
jamtool -a line
jamtool -d wazoo.cap line
jamtool -e StartTime EndTime env:variable
jamtool -i env:variable
jamtool -l{c}{n}{d}{v} Address {nodelistpath}
jamtool -r system response
jamtool -s {u}
jamtool -t filename device unit baud flags
jamtool -v line
------
AKA Lookup: (-a)
This function is used with the EMSI handshaking. It takes the line
number as the command line argument, and does a lookup (phone book only)
of each address in the Env:$(line).Remote.Addresses variable.
It creates 3 new Env:Variables: $(line).Remote.Addresses.Valid,
$(line).Remote.Addresses.Invalid, and $(line).Remote.Addresses.Unknown.
The Addresses in the Valid and the Unknown variables should be used
for the BeginSession commands, and the Invalid addresses should be
logged for the Sysop to deal with.
The line number is added to the front of each variable so there are
no problems on multi-line systems.
------
Lookup: (-l)
This is the function you will be using to find the phone number or
password of a system you want to have a session with. There is one
required option, which is the address you are looking for, and a second
option which is required if you turn on Env: Variables.
The Lookup function is the only function where I check the other
letters of the command option. If a c is found, the t:jamtool.cache
file will be used when appropriate. If an n is found, the Nodelist
will be searched when appropriate. If a d is found, the display will
have a little bit more information than when its not. If a v is found
then Env: variables will be written if the system is found.
The Flow of the Lookup function is as follows
Look for the system in the Phonebook.
If not found and the Cache is enabled, look there.
If not found and the Nodelist is enabled look there
If I found it in the nodelist, and the cache is on, add to the cache
If I found the system, and the variables are on, write the variables.
3. Work:jamtool> jamtool -lcnd 1:224/100
Address: FIDONET#1:224/100.0 (-)
System : Jammy's Amiga Corner
Phone : 1-705-566-1991 Type: FIDO
Sysop : James_Mcormond (Sudbury_ON)
Flags : V32B,V42B,ZYX,CM,XA,9600
Hub : 60, Region: 12
Cost : 0
This is the output displayed when Full display is turned on, and the
system was found in the nodelist (not the Cache or phonebook).
3. Work:jamtool> jamtool -lcdn 163/109
Address: FIDONET#1:163/109.0 (-)
Phone : 1-613-230-2282 Type: FIDO
Sysop : Russell_McOrmond (Ottawa_ON)
Flags : ZYX
This is the output displayed when Full display is turned on and the
system is found in the Cache or Phonebook. The Phone number line
would not be displayed if the extended display option was not on.
The following ENV: variables are set when you turn Env: Variables on.
$(stem).City
$(stem).Cost
$(stem).Flags
$(stem).MaxBaud
$(stem).Number
$(stem).Password
$(stem).SiteName
$(stem).Sysop
------
Type file: (-t)
This function is relatively straight forward. It takes the required
command line options, and outputs a regular text file to the user
through the given serial device.
I run it in Jammail.wpl like this.
system "jamtool -t text:$(username) $(device) $(unit) $(baud) $(serflags)"
which prints a text file name (in the variable username) to the user on
this line.
------
Dialing Response Code: (-r)
This function takes two options, the first one being the systems address
and the second being the response type as returned from the modem after
a dial ("CONNECT", "BUSY", "MAID", etc).
The first parameter, is not to be a regular Fido style address. If the
system called, was not a Fidonet system, the address is passed unmodified
to JamTool, if the address is a Fidonet system, then the address should
be sent in the following form:
Zone.Net.Node.Point.Domain.
The following WPL code is used in JamMail for this function.
cmpi $(remote.type) FIDO
FalseJump NotFidoDoDial
RexxMsg SY REXX "Address 'COMMAND' 'JamTool -r $(Remote.Zone).$(Remote.Net).$(Remote.Node).$(Remote.Point).$(Remote.Domain) $(event)'"
Jump AfterTypeCheckDoDial
NotFidoDoDial:
RexxMsg SY REXX "Address 'COMMAND' 'JamTool -r $(Remote.Address) $(event)'"
AfterTypeCheckDoDial:
This code is immediately after the GetResponse command after the Dial
command.
------
Scheduler: (-s) option
This function scans XferQ.library for systems with outbound mail of at
least priority 50 (crash) (or the number stored in the ENV: variable
"minpri"), and scans the UUSPOOL: directory for C.#? files to go to
sites listed in your UULIB:l.sys file and creates a list of environment
variables with the sites to call.
$(JamTool/todial) the number of sites to dial
$(JamTool/todial-1) site number 1 to dial
$(JamTool/todial-2) site number 2 to dial
etc..
The Scheduler built into versions of JamMail higher than .96 all use
this function.
As of JamTool 0.23 this scheduler now counts the number of busy signals
and failed connections (via the -r option above), and will dial less
often if you still have not connected to this system. The following
function is used to determine the number of "loops" through the
scheduler will be waited until the next dial for this system.
towait = (((bad*3)+busy) / 10)
Each bad connect is equivalent to 3 busy signals. After each 15 busy
signals, the system will up the number of loops that it must wait
before dialing the system again.
------
Wazoo Bit Decode: (-d)
This option provides you with a "pretty" bit display for your logs.
Instead of displaying just the Wazoo Bits number, you can also display
exactly what each bit means.
In JamMail.wpl, this is how I use the decode option.
System "JamTool -d $(remote.wzcap) $(line)"
If $(remote.wzcap) contained the number 49165, the env:$(line).WaZoo
variable would include the following string.
> DietIFNA ZedZip ZedZap +Freq +Domain
which you can print in the Wazoo: display routine in your .wpl language
file.
------
IsValid: (-i)
This option takes the name of an environment variable as its option.
It will scan the line for special control characters and tell you if
the string is invalid. It will return 5 if it finds a character that
it doesn't like.
The following characters are scanned for:
' ` ~ $ "
------
Total Session time Calculator: (-e)
This option takes 3 options. The Start time (hh:mm:ss), the End time
(hh:mm:ss) and the variable name that it will stick the difference in
(hh:mm:ss format). This is used to provide the Total Session Time
displayed on the End of Session log line.
> [1] 19:29:14 End of Session with FidoNet#1:224/30.0 Duration: 00:01:25
------
Pretty Version Strings: (-v)
This option will possibly be removed from the program as its not as
relevent as it first was when I first wrote it.
I run it in the following way in my Startup: routine in my JamMail.Wpl
file.
startup:
set currentlog all
set stack 32000
PutLog ""
system "jamtool -v M"
PutLog "[M] $<time> Startup on ${M.Date} with ${WPLName}"
PutLog "[M] $<time> ${M.Version}"
which produces a log such as:
>
> [M] 14:05:46 Startup on Sunday 21-Feb-93 with WPL 0.86.01
> [M] 14:05:46 Kickstart version 37.175. Workbench version 37.71
The $(stem).Version string is really not necessary, since Version can
be run as an Echo option in KS2.0 (to get rid of the line feed on the
end), but I had done this option before we found this out. The only
difference between $(stem).Date and the internal $<date> function is
the day word, which is what i was wanting.
-----------------------------------------------------------------------
5) The S:Jamtool.phone and t:Jamtool.Cache files
Both of these files are exactly the same format. Actually, when I
first wrote the version of JamTool that supported these files, I used
jamtool to create a t:jamtool.cache file (through nodelist lookups),
and then copied this file as my s:jamtool.phone file.
The format of the file is as follows. One system per line.
Address Phone Type PassWd Flags Location Sysop
The address must be either a text address, or a full 5d FTN address.
eg. Fidonet#1:163/139.0
The phone number field is self-explainatory. This is the number that
is dialed to reach this system. (JamMail users that are using a LD
phone routing service should look into the LDPhone Options if they
wish to prepend a number to this phone number). Local phone numbers
should not have prefixes and such on them.
eg. 1-613-521-0455
or:
521-0455 (if its a local call)
There are a few types supported with JamMail. Users of other software
may want to put a - in this field if your mailer doesn't use this field
itself.
FIDO - When connected, start a Fidonet session with this site.
UUCP - When connected, launch UUCICO for a UUCP session.
NRC - Used for calling Atomic clock systems.
TERM - When connected, launch a terminal program.
FAX - When connected, lauch fax software (not used yet).
Currently JTPhone only supports the first 4.
The PassWd field should contain the password that you wish to use for
sessions with this system.
The Flags field should contain a bit of information about the modem on
the other end. JamMail uses this field to check against a list of
parameters that the user can configure, and it will use a custom dial
string for specific modem types. If you are importing systems from the
nodelist, you will want to clean a lot of the nodelist flags out of
this field as you won't be using them. See section on JTPhone for more
information.
The last two fields, Location and Sysop are used for display purposes
only.
Eg.
Fidonet#1:163/109.0 230-2282 FIDO - v32b Ottawa Russell_McOrmond
Note: If you support UUCP sessions on your system, you will need an
entry for inbound calls, and one for outbound calls. The inbound
entry should have a "UU" on the front of the name.
eg.
Jammys 521-0455 UUCP - v32b,zyx Ottawa James_McOrmond
UUJammys - UUCP passwd v32b,zyx Ottawa James_McOrmond
The password field is not currently used on Outbound calls, so you are
expected to keep working entries in your uulib:l.sys file.
The following fields can be replaced by a "-" character if they are not
appropriate, or necessary for that entry. (JamMail users)
Sysop - not worried about display
Location - (again, not necessary)
Password - outbound UUCP sessions
Phone - inbound UUCP sessions
-----------------------------------------------------------------------
If you need to contact me, these are my Addresses.
FidoNet#1:163/139.0
ZyXELNET#18:163/139.0
InterNet: ab207@Freenet.Carleton.Ca
UUCP: Jam@Jammys.OCUnix.On.Ca (Email costs)
Also you can get ahold of me in any number of the Amiga Fidonet related
conferences (Especially the WELMAT or AMY_Point) conference, as well as
most of the UseNet Comp.Sys.Amiga newsgroups, especially
Comp.Sys.Amiga.Datacomm.
Current versions of JamTool are always available by dialing my system
1:163/139 (613)521-0455, typing "freq", and then typing "JamTool".
-----------------------------------------------------------------------
----------=== Jamtool Changelog ===----------
V0.10 - Intial release. Sunday February 21, 1993
V0.11 - shows all command line arguments in window for debugging.
V0.12 - If there is a second digit after the f in the -f option
(ie -FIDO as in the above example), the tiny display will be
put there, but if there is only a -f, then there won't be a
display. This is to remove the display from being show when
the Wazoo: routine is looking up the sites password (and City
in Jammail.wpl).
V0.13 - Added regular fido lookup function which displays the same
information the regular -fido option does, but it doesn't
set any ENV: variables. (Thu Feb 25)
V0.14 - working on type function. (Mon Mar 1)
V0.14+ - Type function works. Requires filename, device, unit, baud
and serial flags ($(serflags) variable).
V0.15 - -L option fixed.
V0.16 - -S(cheduler) Option added. Scans for UUCP and Fido outgoing mail
v0.17 - fixes to scheduler - does not dial UUCP sites without "any" in the
second field of the l.sys file.
v0.17b - bug fixes
v0.17c - something
v0.18 - Visual changes as requested by Robert. Domain displayed in Lookup
is the same domain given (if one is given). (bits) part removed
from WaZoo decode line and +domain moved to last field displayed.
v0.18b - -E option. It subtracts the time difference between the two time
values given. This allows me to give the "total session time"
used in the End of Session log line.
v0.20 - completely re-did all of the "lookup options" to use the phone
book and cache files. All addresses are parsed by Xferq.Library
and are converted to uppercase for a case-insensative match on
the phonebook and cache files.
v0.20b - added env:minpri variable for scheduler to set the lowest
priority that will be scanned for.
v0.21 - New Lookup function. There is now a single Lookup command with
4 possible flags.
v0.21a - Completely cleaned JamTool up.
v0.22 - JamTool Phone book editor added to archive.
v0.22a - JTPhonebook updated (v1.02).
v0.22b - JTPhonebook updated (v1.03). Optimizing all 3 binaries now.
JamTool now identifies Hydra in Wazoo Bit field.
Entry of "Session type" fixed in JTPhone Add function.
v0.23 - Scheduler now figures out how often it should dial a system
based on the number of Busy signals and bad connections it has
received attempting to dial the system since its last outbound
connection. New Option "-r" added used for setting up this
"Data base" of responses for each system.
0.23b - Scheduler dialing adjuster now changes after 10 "busy" responses
instead of 15.
0.24 - 0.26 - lots of small changes - AKA lookup function added
(missing documentation :-)
0.27 - AKA password lookups are now sped up a very large amount!
previously the s:jamtool.phone file was searched for each AKA
and the passwords checked one at a time. I am now reading
the s:jamtool.phone into a linked list in ram, and search
for each AKA that way.